package com.ruoyi.system.execution.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 合同执行对象 contract_execution_records
 * 
 * @author ruoyi
 * @date 2025-04-27
 */
public class ContractExecutionRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 执行记录ID，自增主键 */
    private Long executionId;

    /** 合同ID，外键关联合同表 */
    @Excel(name = "合同ID，外键关联合同表")
    private String contractId;

    /** 执行日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "执行日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date executionDate;

    /** 执行状态：例如"进行中"、"完成"、"失败"等 */
    @Excel(name = "执行状态")
    private String executionStatus;

    /** 执行意见或备注 */
    @Excel(name = "执行意见或备注")
    private String executionComments;

    /** 执行人ID，关联用户表 */
    @Excel(name = "执行人ID，关联用户表")
    private String executedBy;

    public void setExecutionId(Long executionId) 
    {
        this.executionId = executionId;
    }

    public Long getExecutionId() 
    {
        return executionId;
    }

    public void setContractId(String contractId) 
    {
        this.contractId = contractId;
    }

    public String getContractId() 
    {
        return contractId;
    }

    public void setExecutionDate(Date executionDate) 
    {
        this.executionDate = executionDate;
    }

    public Date getExecutionDate() 
    {
        return executionDate;
    }

    public void setExecutionStatus(String executionStatus) 
    {
        this.executionStatus = executionStatus;
    }

    public String getExecutionStatus() 
    {
        return executionStatus;
    }

    public void setExecutionComments(String executionComments) 
    {
        this.executionComments = executionComments;
    }

    public String getExecutionComments() 
    {
        return executionComments;
    }

    public void setExecutedBy(String executedBy) 
    {
        this.executedBy = executedBy;
    }

    public String getExecutedBy() 
    {
        return executedBy;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("executionId", getExecutionId())
            .append("contractId", getContractId())
            .append("executionDate", getExecutionDate())
            .append("executionStatus", getExecutionStatus())
            .append("executionComments", getExecutionComments())
            .append("executedBy", getExecutedBy())
            .toString();
    }
}
